package java学习.第08章_面向对象编程_高级;

/**
 * abstract关键字的使用
 * 1. abstract :抽象的
 * 2. abstract 可以用来修饰的结构:类、方法
 * 3. abstract 修饰类:抽象类
 *      >此类不能实例化//不能 new
 *      >抽象类一定有构造器，便于子类实例化调用
 *      >开发中，都会提供抽象类的子类，让子类对象实例化，完成相关的操作
 *
 * 4. abstract 修饰方法:抽象方法
 *      >抽象方法只有方法的声明，没有方法体
 *      >包含抽象方法的类，一定是一个抽象类。
 *          反之，抽象类中可以没有抽象方法的。
 *      >若子类重写了父类中的所有的抽象方法后，此子类方可实例化
 *      >若子类没有重写父类中的所有的抽象方法，则此子类也是一个抽象类，
 *          需要使用 abstract 修饰
 *
 * 5. abstract 使用上的注意点:
 *      1. abstract不能用来修饰:属性、构造器等结构
 *      2. abstract不能用来修饰私有方法
 *      3. abstract必须重写，但是私有的不可被调用
 *                   无法重写静态方法,
 *      4. final的方法、final的类//final不可重写继承
 *         abstract必须重写继承
 */
public class E_抽象类与抽象方法 {
    public static void main(String[] args) {
    }
}
//此类是一个抽象类
abstract class  E0{
    E0(){ }
    //此方法是一个抽象方法
    public abstract void ss();

}
class E1 extends E0{

    @Override
    public void ss() {
        System.out.println("5555");
    }
}
